#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include<QMainWindow>
#include<QMenuBar>
#include<QDomDocument>

QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE

class QStandardItemModel;
class Widget : public QMainWindow
{
    Q_OBJECT

public:
    Widget(QWidget *parent = nullptr);
    ~Widget();

    QMenu *manageMenu;      //"销售管理"主菜单
    QMenu *passWordMenu;    //"修改密码"主菜单
    //动作Action定义
    QAction *manageAction;
    QAction *chartAction;
    QAction *quitAction;

public:
    enum DateTimeType{Time,Date,DateTime};
    const QString getDateTime(const DateTimeType& type);    //获取时间和日期

private slots:
    void manageMenu_clicked();      //实现"品牌车管理"子菜单功能函数
    void chartMenu_clicked();    //实现"销售统计"子菜单功能函数
    void quitMenu_clicked();     //实现"退出"子菜单功能函数

    //加载某厂家对应的品牌名
    void on_sellFactoryComboBox_currentTextChanged(const QString &factoryName);

    void on_sellCancelBtn_clicked(bool checked);    //初始化页面

    //加载某品牌的报价和数量
    void on_sellBrandComboBox_currentTextChanged(const QString &brandName);

    //显示购车总价
    void on_sellNumSpinBox_valueChanged(int num);

    void on_sellOkBtn_clicked();

    //选择要展示直方图的厂家
    void on_factoryComboBox_currentTextChanged(const QString &factoryName);
    //更新显示
    void on_updateBtn_clicked();

private:
    Ui::Widget *ui;
    bool isCancel=false;
    QDomDocument doc;
    QStandardItemModel *chartModel;

    void createMenuBar();   //用于生产菜单栏的函数
    //创建销售数据的模型和视图
    void createChartModelView();
    //销售数据直方图
    void showChart();

    /****读写XML文档****/
    const bool docRead();
    bool docWrite();
    /****读写XML文档****/

    //修改XML文档
    void writeXml();
    void createNodes(QDomElement &date);  //创建销售信息的节点
    void showDailyList();   //显示日销售清单
};
#endif // WIDGET_H
